As businesses increasingly rely on computers for their daily operations, managing the vast amount of business information generated and processed has become a significant challenge. Most large businesses have a wide variety of application programs managing large volumes of data stored on many different types of storage devices across various types of networks and operating system platforms. These storage devices can include tapes, magnetic disks, optical disks, and other types of storage devices.
Today, storage area networks (SANs) can be used to provide hundreds of storage devices for use by several hosts. Allocating storage devices for use by a particular application program can be a difficult task when the storage devices are provided via a SAN. One approach to making storage devices easier to use and configure is to create an abstraction that enables storage to be viewed in terms of logical storage devices, rather than in terms of the physical devices themselves. For example, physical devices can be logically combined into a single logical storage device that provides the storage capacity of the combined physical storage devices. Such logical storage devices are referred to herein as “logical volumes.” Logical volumes are abstractions consisting of a set of logical memory blocks that store data. While it is said that logical memory blocks store data, in reality the data is stored in physical memory blocks of the underlying physical devices (e.g., hard disks) allocated directly or indirectly to the logical volume.
Configuring a logical volume is a complex task when tradeoffs between performance, reliability, and cost are taken into account. A storage administrator must keep track of how particular volumes are implemented so that subsequent reconfigurations of a logical volume do not render the logical volume unsuitable for the purpose for which the logical volume was created. Operations such as increasing the size of a logical volume, evacuating data from the logical volume, or moving a logical volume to a different physical location involve identifying additional or alternative storage for a logical volume that also conforms to the purpose for which the logical volume was intended. Previously, this process has largely been performed manually by storage administrators and is subject to error.
To further complicate storage management issues, the storage provisioning process is typically separate from the daily operational environment, and large quantities of storage devices having particular characteristics are purchased en masse. Unfortunately, the needs of particular logical volumes may be unmet if information about the types of devices needed to meet those needs is not provided as input to the provisioning process.
A solution is needed that specifies characteristics of resources (e.g., physical storage devices) that must be acquired to enable the intent of a logical volume to be consistently maintained. These characteristics can be provided as input to the storage provisioning process. Preferably, the solution should be automated and based upon the stored intent of the logical volume. The solution would ideally specify connectivity of the identified resources to storage objects in an existing logical volume so that the newly-acquired resources can be used for their intended purpose.